home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d20
/
bbe_v505.arc
/
BBEDOCEN.DOC
< prev
next >
Wrap
Text File
|
1990-09-20
|
58KB
|
1,148 lines
╔══════════════════════════════ ┌─────────────────┐
║ BBE Bulletin Board │ D.I.S.P. │────┐
║ Executor (Mailer) │ │░░░░│
╟────────────────────────────── │ │░░░░│
║ (c) 1990 Robert W.van Hoeven │ Dutch │░░░░│
╟────────────────────────────── │ Independent │░░░░│
║ Release : 5.05 │ ShareWare │░░░░│
║ Rel.Date: 20th September 1990 │ Programmer│░░░░│
╠══════════════════════════════ └─────────────────┘░░░░│
║ | │░░░░░░░░░░░░░░░░░│
║ │ BBE.EXE | └─────────────────┘
║ │ BBE.CTL | ┌─────┐ |
║ │ BBE.BAN & BBE_EXT.BAN | │░░░░░│ |
║ │ | └──┬──┘ |
║ │ Lines starting with '│' are | ┌────┴────┐ |
║ │ changes to release 5.01 !! ------││││││ ═══│-------
║ └─────────┘
╠═══════════════════════════════
║ Address: Robert W. van Hoeven
║ PO. Box 131
║ 1170 AC Badhoevedorp
║ Nederland / Holland
╚═══════════════════════════════
┌───────┬─────────────────────────────────────────────────────────────┐
│ 0 │ Table of contents │
└───────┴─────────────────────────────────────────────────────────────┘
1 ---- General information
1.1 Copyrights and License Agreement
1.2 Newer versions and contacting the author
2 ---- Package description and requirements
2.1 Preface
2.2 Requirements
2.3 Multitaskers
3 ---- Installing BBE
3.1 Installation
3.2 BBE.CTL description
3.3 Banner file (BBE.BAN)
3.4 Banner file questions, a complete remote menu-system ?
3.5 Word and Digit modem answers
4 ---- Execution
4.1 Running BBE
4.2 BBE as a mailer
4.3 Run time (menu's)
5 ---- Credit and history
5.1 Credits
5.2 Copyrights and trademarks
5.3 Unregistered usage
5.4 Version history
┌───────┬─────────────────────────────────────────────────────────────┐
│ 1 │ General information │
└───────┴─────────────────────────────────────────────────────────────┘
1.1 Copyrights and License Agreement
────────────────────────────────────
- Users of the BBE-package must accept this disclaimer of warranty:
- The BBE-package is supplied as is. The author disclaims all
warranties, expressed or implied, including, without limitation,
the warranties of merchantability and of fitness for any purpose.
The author assumes no liability for damages, direct or consequential,
which may result from the use of the BBE-package;
- The BBE-package is a "shareware program" and is provided at no charge
to the user for evaluation. Feel free to share it with your friends,
but please do not give it away altered or as part of another system.
The essence of "user-supported" software is to provide personal com-
puter users with quality software without high prices, and yet to
provide incentive for programmers to continue to develop new products.
- If you find this program useful and find that you are using and con-
tinue the use of the BBE-package after a 30 days trial period, you
must register the BBE-package as described below. With this regis-
tration you also 'unlock' the memory-requirements of the DOS-shell;
- Non-commercial can get a license for the usage up to this release
of the BBE-package for HFl 5,-- (US $ 5,--). This ONLY gives you
the right of using the software and will unlock the DOS-shell, so
you will have full memory available while you are inside the DOS-
shell.
For Non-commercial users there is a POSSIBILITY to submit to one
of the special contracts as explained in the file REGISTER.BBE.
- Commercial usage of BBE is NOT free of charge. Also, a so called
'closed' Bulletin Board System (a system where the user must pay
direct to the SysOp to get full access) is NOT free of charge.
Both types of users MUST register directly after the evaluation
period by filling in the REG_FORM.BBE form and by sending it,
along with the money or cheque, to the address in the header of
this documentation;
- The registration of the BBE-package will license ONE copy for use on
any computer at any one time, as long as the usage confirms to the
type of registration you have done (so NON-commercial usage when you
have a non-commercial license);
- Anyone distributing the BBE-package for any kind of remuneration must
first contact the Author at the address above for authorization.
- You are encouraged to pass a copy of the BBE-package along to your
friends for evaluation. Please encourage them to register their
copy if they find that they can use it;
- When you are a non-commercial user of BBE and you are depending
on the software, you can consider to pay a small amount of
money for service. The terms for this option can be found in
the file REGISTER.BBE.
- Support on BBE, when used in a non-commercial environment, is
available even when you don't enter a service contract, but the
these users (both commercial users and non-commercial users with
a service contract) have higher priority;
- Problems and suggestions can be entered in the FidoNet <tm> Echomail
conference <tm> called DISP (international). Entering this echo does
not exclude you of the duty to register the BBE-package, though users
who evaluate the product can enter the echo for questions;
- The BBE-package, all programs, the documentation and support-files is
copyrighted 1990 by Robert W. van Hoeven, PO. Box 131, Badhoevedorp
1170AC, Holland. All rights are reserved. You may copy this package
for backup purposes. Also you may copy and share unmodified copies of
the whole package, providing that the copyright notice is reproduced
and included on all copies.
Excluded from this statement are the support-files written by other
authors. Please refer to the documentation of these programs for
copyrights and license agreements;
- Comments, suggestions and bug reports are welcome and will be answered
as soon I have the time to do so. You can send me a letter of leave a
NetMail <tm> message named to Rob Van.hoeven (mind the point) on node
2:512/100 (RA Support, Monster, Holland, SysOp is Reinier de Groot).
When you want to send me normal mail, address it to:
Robert W. van Hoeven, PO. Box 131, 1171 AC Badhoevedorp, Holland;
Also you can enter messages in the FidoNet <tm> DISP Echomail <tm>
area;
1.2 Newer versions and contacting the author
────────────────────────────────────────────────────────────────────────
The newest version of BBE is always available on 2:512/100 (Remote
Access Support). You can obtain BBE in three ways:
- Logging on to 2:512/100.
In this case you have the possibility to look at tons of inter-
resting files with specialized area's for RA and so on;
- File-request BBE at 2:512/100
If logging on to 2:512/100 is to much work or to expensive, you
can also file-request BBE with the magical name BBENEW. Anyone
can file-request this file.
- Update service;
You can enter a special update service (read REGISTER.BBE).
If you think you have found problems in BBE, or in any other case,
you wish to contact the author, you can send me:
- A letter to the address you can find in the header of this file;
- A NetMail <tm> message to Rob Van.hoeven (please mind the point
between Van and Hoeven) at 2:512/100;
- A Message in the FidoNet <tm> DISP echomail <tm> area;
┌───────┬─────────────────────────────────────────────────────────────┐
│ 2 │ Package description and requirements │
└───────┴─────────────────────────────────────────────────────────────┘
2.1 Preface
────────────────────────────────────────────────────────────────────────
Some Bulletin Board Systems (BBS's) run in a very small environment
and on one single machine. Most SysOp's of these Bulletin Boards
would like to work on the same machine, although a BBS is waiting
for call's. This can be solved by means of putting a mailer in front
of the Bulletin Board, but most mailers offer to many features and
use to many system resources (memory) to get a nice environment to
do 'normal' work. Worse, some mailers drop the modem's DTR while
working in a shell, so no incoming calls are answered by the modem !
I did write BBE out of need, although I am now using a normal mailer,
but this is more because of the fact I need real mailer functions.
BBE is a small front-end/mailer for a BBS program. When BBE comes
active, the modem can answer the phone, you can shell to DOS, only
with a reduction of around 70K, and you can call your favorite pro-
gram direct, both with the option to leave the modem 'active' and
waiting for calls. When someone calls, the modem takes the call, you
terminate your shell or program and BBE does the rest (answer the
user, terminate and call the BBS, gaining control again after the
user is ready).
BBE also includes a simple mailer function. This function only works
when you use the popular Bimodem <tm> program. In this case, the in-
coming call can trigger Bimodem even before the BBS comes active and
send or get some files. The protection you have, is configured in
Bimodem itself and not in BBE. You can also ignore this option. Mailer
functions are not possible in this case !
2.2 Requirements
────────────────────────────────────────────────────────────────────────
BBE requires: - PC XT/AT/386
- At least 75K free memory
- A Hayes Compatible modem;
- Bimodem <tm> optional
- DOS 2.11 or 3.xx (4.xx not tested) also
running with 4Dos (version 2.xx and up);
2.3 Multitaskers
────────────────────────────────────────────────────────────────────────
BBE is multitasking (DesqView <tm>) aware. I do not see any needs to
run BBE in a multitasking environment, but if you want to do so, you
can. BBE will use the virtual video page supplied by DesqView. There
are some reports of BBE not working in a Windows 3.0 <tm> environment,
but these have to bo sorted out at the time of this writing. Please
contact me if you want to run BBE as a non-window application under
Windows 3.0 and you have troubles with the BBE-programs !
┌───────┬─────────────────────────────────────────────────────────────┐
│ 3 │ Installing BBE │
└───────┴─────────────────────────────────────────────────────────────┘
3.1 Installation
────────────────────────────────────────────────────────────────────────
BBE's installation is easy if you follow these steps:
- Place BBE.EXE somewhere on your disk;
- Place BBE.CTL in the same directory (when running DOS 3.xx and up)
or somewhere in the DOS-path or the active directory when running
the batch-file;
- Place BBE.KEY in the same directory (when running DOS 3.xx and up)
or somewhere in the DOS-path or the active directory when running
the batch-file (only REGISTERED users, se REGISTER.BBE);
- Edit BBE.CTL to your own needs;
- Optionally create a banner-file and let BBE.CTL point to this file;
3.2 BBE.CTL description
────────────────────────────────────────────────────────────────────────
BBE 'leans' on a configuration file. In this configuration file, all
of BBE's options are included. The file must be a normal text-file
(flat ASCII-file). You can mix cases if you like and the number of
white spaces between parameters has no limits (the only limit is that
one option must fit in a line of a maximum of 255 bytes in length).
The general format of BBE.CTL is:
[option] {parameter} {parameter}
When you start a line with a ';' (without the quotes), the line is
marked as comment.
The CTL-file can/must contain the following options:
│╒═════════════════════════════════════════════════════════════════════╕
││ COM [portnumber] [port-address] [IRQ] │
│╘═════════════════════════════════════════════════════════════════════╛
│Function: By default BBE assumes a normal PC-XT or PC-AT layout. In
│ case of different machines (PS2 and such) there could be
│ a different layout for the COM-port assignments. This
│ statement lets you customize the COM-port assignment by
│ both the address and the IRQ-number. All supplied values
│ must be in DECIMAL (not hexadecimal) and all options must
│ be available. To assign COM-port 3 to address 1000 ($3E8)
│ and IRQ4 (this is a XT/AT default), supply:
│ COM 3 1000 4
│
│ [portnumber] must be the actual COM-port (1,2,3 or 4).
│ [portaddress] must be the decimal address for this COM-port
│ [IRQ] must be the decimal IRQ for this COM-port
│
│ Default assignments are:
│ COM1 $3F8 (1016) IRQ4
│ COM2 $2F8 ( 760) IRQ3
│ COM3 $3E8 (1000) IRQ4
│ COM4 $2E8 ( 744) IRQ3
│
│ If someone needs a BBE version to support COM5,6,7 or 8,
│ it is advised to contact me by mail.
│
│ WARNING: The supplied setup is different from BBE version
│ 5.01 and lower. 5.01 and down used a PS2 default
│ setup with different assignments for COM3 and
│ COM4.
│
│╒═════════════════════════════════════════════════════════════════════╕
││ ModemPacing [value1] [value2] │
│╘═════════════════════════════════════════════════════════════════════╛
│Function: By default BBE assumes a normal (moderate) modem. There are
│ modems that give a quick response to the Hayes commands,
│ there are also slow modems.
│ If you get problems like 'Unable to send init command' or
│ errors like this and you get them frequently, it is time
│ to change the delay between BBE and the modem when sending
│ these commands. The ModemPacing option is designed for this
│ task.
│
│ [value1] is the number of 1/1000th seconds BBE will wait
│ after a single command (like clear buffers or sending some
│ special single characters). By default this value is 2.
│
│ [value2] is the number of 1/1000th seconds BBE will wait
│ after sending a full ModemInitString or ModemAutoAnswerString
│ line to the modem. The default is 1000 (1 second).
│
│ You have to play around with these values. The best way to
│ test the BBE-modem combination is to start BBE (it is can
│ init the modem already) and frequently hit on F4 (reinit
│ the modem. If things still go alright (e.g. BBE will not
│ terminate with an error) you can lower the values, other-
│ wise, values must be bigger.
│
│ For fast combinations, values 2 and 250 will do. For average
│ combinations (card modems and some XT's) values 5 and 1000
│ will do. Slow combinations could benifit with values 10 and
│ 2000. The second value is the most important. With problems,
│ set value1 to 10 and play with value2.
╒═════════════════════════════════════════════════════════════════════╕
│ Modem300 [modem-response] │
╘═════════════════════════════════════════════════════════════════════╛
Function: By default BBE assumes the modem answer for a 300-baud
connection is CONNECT. If this is not the case (f.e. the
modem answer is CONNECT 300) you can overrule the default
with this option.
[modem-response] must be the actual modem-answer to a 300
baud connection. If you must include spaces like in
'CONNECT 300', you must replace the spaces with underscore
characters (e.g. CONNECT_300);
BBE will only search inside the complete modem connect
string for this text. So if the modem answers with:
THE ACONNECT 300 ARQ/HST
than BBE is able to find the CONNECT 300 inside this
string and you don't have to include the full string
(THE ....... ARQ/HST) in the configuration.
╒═════════════════════════════════════════════════════════════════════╕
│ Modem1200 [modem-response] │
╘═════════════════════════════════════════════════════════════════════╛
Function: By default BBE assumes the modem answer for a 1200-baud
connection is CONNECT 1200. If this is not the case (f.e. the
modem answer is CONNECT) you can overrule the default with
this option.
[modem-response] must be the actual modem-answer to a 1200
baud connection. If you must include spaces like in
'CONNECT 1200', you must replace the spaces with underscore
characters (e.g. CONNECT_1200);
See also the Modem300 option for more details !
╒═════════════════════════════════════════════════════════════════════╕
│ Modem2400 [modem-response] │
╘═════════════════════════════════════════════════════════════════════╛
Function: By default BBE assumes the modem answer for a 2400-baud
connection is CONNECT 2400. If this is not the case (f.e. the
modem answer is CONNECT) you can overrule the default with
this option.
[modem-response] must be the actual modem-answer to a 2400
baud connection. If you must include spaces like in
'CONNECT 2400', you must replace the spaces with underscore
characters (e.g. CONNECT_2400);
See also the Modem300 option for more details !
╒═════════════════════════════════════════════════════════════════════╕
│ Modem4800 [modem-response] │
╘═════════════════════════════════════════════════════════════════════╛
Function: By default BBE assumes the modem answer for a 4800-baud
connection is CONNECT 4800. If this is not the case (f.e. the
modem answer is CONNECT) you can overrule the default with
this option.
[modem-response] must be the actual modem-answer to a 4800
baud connection. If you must include spaces like in
'CONNECT 4800', you must replace the spaces with underscore
characters (e.g. CONNECT_4800);
See also the Modem300 option for more details !
╒═════════════════════════════════════════════════════════════════════╕
│ Modem9600 [modem-response] │
╘═════════════════════════════════════════════════════════════════════╛
Function: By default BBE assumes the modem answer for a 9600-baud
connection is CONNECT 9600. If this is not the case (f.e. the
modem answer is CONNECT) you can overrule the default with
this option.
[modem-response] must be the actual modem-answer to a 9600
baud connection. If you must include spaces like in
'CONNECT 9600', you must replace the spaces with underscore
characters (e.g. CONNECT_9600);
See also the Modem300 option for more details !
╒═════════════════════════════════════════════════════════════════════╕
│ Modem19200 [modem-response] │
╘═════════════════════════════════════════════════════════════════════╛
Function: By default BBE assumes the modem answer for a 19200-baud
connection is CONNECT 19200. If this is not the case (f.e. the
modem answer is CONNECT) you can overrule the default with
this option.
[modem-response] must be the actual modem-answer to a 19200
baud connection. If you must include spaces like in
'CONNECT 19200', you must replace the spaces with underscore
characters (e.g. CONNECT_19200);
See also the Modem300 option for more details !
╒═════════════════════════════════════════════════════════════════════╕
│ ModemOK [modem-response] │
╘═════════════════════════════════════════════════════════════════════╛
Function: By default BBE assumes the modem answer for an ok, is OK.
If this is not the case (f.e. the modem answers 1) you
can overrule the default with this option.
[modem-response] must be the actual modem-answer to an OK.
If you must include spaces like in 'AN EXAMPLE', you must
replace the spaces with underscore characters like in
AN_EXAMPLE;
╒═════════════════════════════════════════════════════════════════════╕
│ ModemError [modem-response] │
╘═════════════════════════════════════════════════════════════════════╛
Function: By default BBE assumes the modem answer for an error is ERROR.
If this is not the case (f.e. the modem answers 4) you
can overrule the default with this option.
[modem-response] must be the actual modem-answer to an OK.
If you must include spaces like in 'AN EXAMPLE', you must
replace the spaces with underscore characters like in
AN_EXAMPLE;
╒═════════════════════════════════════════════════════════════════════╕
│ ModemInitString [modem-init parameters] │
╘═════════════════════════════════════════════════════════════════════╛
Function: You MUST supply the default init-string for your modem. BBE
can init the modem with up to 5 of these ModemInitString
│ parameters. Any [modem-init parameter] can be up to 39 bytes
│ in length, so you can init the modem with up to 5 * 39 is 195
bytes of data.
By default BBE will send 'AT Z' to the modem, but with most
modems this is not enough (unless the modem uses NVRAM fea-
tures).
│ Some modems have problems with long command-lines sned to
│ them. In that case, reducing the length of [modem-init parm]
│ to 19 bytes per ModemInitString statement will help you out.
│ This leaves (under normal conditions) enough room to enter
│ a complex modem setup.
╒═════════════════════════════════════════════════════════════════════╕
│ ModemAutoAnswerString [modem-answer parameters] │
╘═════════════════════════════════════════════════════════════════════╛
Function: You MUST supply the default answer-string for your modem. BBE
can init the modem with up to 5 of these ModemAutoAnswerString
parameters. Any [modem-answer parameter] can be up to 40 bytes
in length, so you can init the modem with up to 5 * 40 is 200
bytes of data.
By default BBE will send 'AT S0=1' to the modem, but with most
modems this is not enough (unless the modem uses NVRAM fea-
tures);
╒═════════════════════════════════════════════════════════════════════╕
│ MaxBaudRate [baud] │
╘═════════════════════════════════════════════════════════════════════╛
Function: This option is used to set the PC-modem link speed. By default
BBE uses a 300 baud connection between PC and modem until a
user with a higher baud-rate calls. It should be handy to set
the value to the highest baud-rate your modem supports.
Valid baud-rates are 300, 1200, 2400, 4800, 9600 and 19200.
╒═════════════════════════════════════════════════════════════════════╕
│ DirectProgram [path-to-program] [Y|N] {Parm Parm .. Parm} │
╘═════════════════════════════════════════════════════════════════════╛
Function: BBE can call shells in two ways. One way is the DOS-shell
another is to call a program directly.
This option is used to define the program BBE can call direct
when pressing F2.
[path to program] must include the full path (drive, path and
name) of the called program (.EXE, .COM or .BAT).
[Y|N] must be either 'Y' pr 'N'. When you supply 'Y', BBE will
swap to the directory containing the program, when you use 'N'
BBE will call the program while the current directory is still
active.
{Parm .. Parm} can optionally contain extra parameters to pass
to the called program.
╒═════════════════════════════════════════════════════════════════════╕
│ Runperiod [HHMM-HHMM] │
╘═════════════════════════════════════════════════════════════════════╛
Function: BBE can run in specified time windows (simple events). If you
want BBE to run always, include 'Runperiod 0000-2400' in the
CTL-file.
If you want one or more time-windows, you can supply more
than one RunPeriod option to cover the windows in which BBE
can run.
The first 'HHMM' must always be less than the second, other-
wise you will get an error.
The first 'HHMM' is the earliest time BBE can run, the second
the latest time BBE can run.
Examples:
- BBE must run from 19.00 until 23.30
RunPeriod 1900-2330
- BBE must run from 21.00 until 02.00
RunPeriod 2100-2400
RunPeriod 0000-0200
╒═════════════════════════════════════════════════════════════════════╕
│ BannerFile [filename] │
╘═════════════════════════════════════════════════════════════════════╛
Function: BBE can send some introduction to the caller. This can be any
kind of text. Look into the chapter on 'Banner file'.
[Filename] must contain the full path (drive, path and file-
name) of the banner-file. If you do not include this option,
BBE will send some default information to the caller.
╒═════════════════════════════════════════════════════════════════════╕
│ StartupBannerOption [option] │
╘═════════════════════════════════════════════════════════════════════╛
Function: BBE can send some introduction to the caller. This can be any
kind of text. Look into the chapter on 'Banner file'.
[option] can be any option you choose to be active if you
use a banner file (from 0 to 9).
When you use F8 while BBE is running, you can change the
current StartUpBannerOption value. This is also written
into the current CTL-file.
Any other option than 1 (1 should be the normal default)
will flash on the screen;
╒═════════════════════════════════════════════════════════════════════╕
│ Screensave [minutes] │
╘═════════════════════════════════════════════════════════════════════╛
Function: BBE can (optionally) save the screen after [minutes] of in-
activity (no calls, no keyboard action).
If you do not want the screen to save, do not include this
option.
The screensave is a software save (clear screen), so any
Hercules type of card would work ok, without damage to
both screen and adapter.
╒═════════════════════════════════════════════════════════════════════╕
│ NoSound │
╘═════════════════════════════════════════════════════════════════════╛
Function: When this option is included, BBE will make no sound and
you will sleep better.
╒═════════════════════════════════════════════════════════════════════╕
│ F1Dir [path] │
╘═════════════════════════════════════════════════════════════════════╛
Function: With this option you can set the directory BBE will swap to
when you shell to DOS (not to a program with F2). When you
leave out the option, BBE will not swap and use the current
directory. You must enter a valid path, otherwise BBE will
report an error;
╒═════════════════════════════════════════════════════════════════════╕
│ BimodemPrg [path-to-bimodem] │
╘═════════════════════════════════════════════════════════════════════╛
Function: When you want to use BBE as a simple mailer (read the chapter
MAILER), you must include the path to the Bimodem <tm> pro-
gram. [path-to-bimodem] must include drive, path and name of
the Bimodem <tm> program (f.e. C:\PROTOCOL\BIMODEM.COM).
When the file is not found, BBE will report an error;
╒═════════════════════════════════════════════════════════════════════╕
│ BimodemCfg [path-to-bimodem-configurationfile] │
╘═════════════════════════════════════════════════════════════════════╛
Function: When you want to use BBE as a simple mailer (read the chapter
MAILER), you must include the path to the Bimodem <tm> con-
figuration file. [path-to-bimodem-configurationfile] must
include drive, path and name of the Bimodem <tm> CFG-file
(f.e. C:\PROTOCOL\BIMODEM.CFG).
When the file is not found, BBE will report an error;
╒═════════════════════════════════════════════════════════════════════╕
│ Exit Time [value] │
│ Exit Hang [value] │
│ Exit Terminate [value] │
│ Exit Bimodem [value] │
│ Exit Local [value] │
│ Exit Error [value] │
│ Exit 300 [value] │
│ Exit 1200 [value] │
│ Exit 2400 [value] │
│ Exit 4800 [value] │
│ Exit 9600 [value] │
│ Exit 19200 [value] │
╘═════════════════════════════════════════════════════════════════════╛
Function: BBE will exit with specified termination codes (error levels)
depending on the function performed. You must intercept these
values in your batch-file an do the right things !
BBE knows a number of exit codes. By default, BBE uses these
errorlevels:
Exit Time 64 : Used when BBE detects that the RunPeriod
ends. This is a simple event;
Exit Hang 36 : Used when BBE detects that the banner-
file contains a HANG instruction;
Exit Bimodem 32 : Used when BBE has called Bimodem <tm> and
worked like a mailer;
Exit 300 30 : Used when BBE detects a 300 baud user who
wants to access the BBS itself;
Exit 2400 24 : Used when BBE detects a 2400 baud user who
wants to access the BBS itself;
Exit 1200 12 : Used when BBE detects a 1200 baud user who
wants to access the BBS itself;
Exit 4800 48 : Used when BBE detects a 4800 baud user who
wants to access the BBS itself;
Exit 9600 96 : Used when BBE detects a 9600 baud user who
wants to access the BBS itself;
Exit 19200 192 : Used when BBE detects a 19200 baud user who
wants to access the BBS itself;
Exit Error 8 : Used when BBE detected an error (in the
CTL file, or a line-error);
Exit Local 2 : Used when BBE detected a request to call
the BBS locally;
Exit Terminate 1 : Used when F9 is pressed (Terminate BBE);
You can overrule any of these exit (errorlevel) codes, but
you can not use a code twice. BBE will test if all error-
levels are unique. If this is not the case, BBE will report
an error (and terminate with the actual current Exit Error
code);
3.3 Banner file (BBE.BAN)
────────────────────────────────────────────────────────────────────────
BBE can use a so called banner file. This is a file with information
inside, send to the user before she/he enters the actual BBS (not
in mailer mode).
You can create a banner-file with multiple options inside and you
can set the current option while BBE is running and with the option
in the CTL-file.
The banner file is a normal text file (ASCII flat-file). Every line
contains a text-line send to the user. BBE will add a CRLF combination
to every send line.
The actual text that will be send, starts on position 2 of every line.
Position 1 contains the banner option.
Only the lines with a banner-option equal to the current banner-option
in BBE are send to the user. So you can include multiple banners for
different situations.
Lines without an option in position 1 (a space or an empty line) will
always be send to the user independent of the banner option.
While in BBE you can choose the banner-option that will be the one
BBS will use. You should use banner-option '1' as the default. When
you change the banner-option with F8 in BBE, this new value is writ-
ten in the BBE.CTL file, so when BBE is restarted, the ALTERNATE
banner-option you selected before, still will be used. If the option
is not '1', BBE will display the alternate option in flashing red on
the screen.
With banner-option set to '1', all lines with nothing or a '1' in
position 1 of the BBE.BAN records will be send to the user or
interpreted by BBE ([ASK], [EXIT], [HANG] options). With option set
to 8, all lines with nothing or a '8' in position 1 of the BBE.BAN
records will be send or interpreted.
If a line contains [HANG] in position 2 to 7, BBE will hang up the
line after it detected this text in the banner-file. So you can
create a answering machine when your BBS is down. When [HANG] is
performed, BBE will terminate with the errorlevel supplied in the
'Exit Hang' option (by default 36). [HANG] is always executed when
position 1 contains a blank (not so good, because the BBS will
NEVER be entered as long as BBE.BAN is used) or position 1 is equal
to the current banner-option (as displayed by BBE in it's screen).
If a line contains [EXIT] in position 2 to 7, BBE will terminate
the 'execution' of the banner-file and will drop to your batch-file
with the detected errorlevel. This comes in handy when you work with
the [ASK] option (see next chapter). The same rules apply to position
1 of the [EXIT] option as in [HANG].
If a line contains [ASK in position 2 to 5, BBE will assume a
question. This Banner-option is described in detail in the next
chapter.
When the banner-file is in error (or you did not supply a bannerfile
option) the user will get a default text. This text is:
'One moment, loading Bulletin Board ....'
An example of a banner file:
8[EXIT]
----------------------------------------------------------------------
| QBBS BBE-support Member of DISP |
| |
0| The BBS is down today, please try the next time ! |
1| Loading QuickBBS <tm>, please wait a few seconds ! |
| |
----------------------------------------------------------------------
0
0[HANG]
9
9This is option 9
With the banner option set to 1, BBE will send:
----------------------------------------------------------------------
| QBBS BBE-support Member of DISP |
| |
| Loading QuickBBS <tm>, please wait a few seconds ! |
| |
----------------------------------------------------------------------
With the banner option set to 8, BBE will send:
[nothing at all, BBE will exit BBE.BAN due to 8[EXIT] statement
at the start]
With the banner option set to 9, BBE will send:
----------------------------------------------------------------------
| QBBS BBE-support Member of DISP |
| |
| |
----------------------------------------------------------------------
This is option 9
With the banner option set to 0, BBE will send:
----------------------------------------------------------------------
| QBBS BBE-support Member of DISP |
| |
| The BBS is down today, please try the next time ! |
| |
----------------------------------------------------------------------
[HANG] (will not be send, but the phone will be disconnected !!!!!!)
With the banner option set to 7, BBE will send:
----------------------------------------------------------------------
| QBBS BBE-support Member of DISP |
| |
| |
----------------------------------------------------------------------
You can experiment with it, until you (and your users) are satisfied !
3.4 Banner file questions, a complete remote menu-system ?
────────────────────────────────────────────────────────────────────────
With version 5.01, BBE introduces a nifty option to include questions
to the users, even before the BBS is called. This option is a little
tricky. I will describe all the features, the pitfalls and the sug-
gestions, but much comes down on your own imagination !
Questions can be submitted to the users by means of the 'ASK' option
in BBE.BAN. This options works the same like [EXIT] and [HANG]. It
triggers some of BBE's internal coding and in this case it will
give you the option to ask users one or more multiple-choice questions
that will influence the final result of the errorlevel that BBE passes
when it will terminate.
The general syntax of the 'ASK' option is:
b[ASKnd] el1 el2 el3 el4 el5 el6 el7 el8 el9
where b is the banner-option that will decide if this
line is interpreted by BBE;
n is the maximum number of the answer the user
can give (1 to 9);
d is the default option BBE will assign to the
question when the users does not enter the
answer within 30 seconds (1 to 'n');
elx is an array of errorlevels to be added to the
base error-level. The array must at least be
as long as the maximum numbers of answers ('n')
and must contain errorlevels from 0 to 255
separated by spaces;
The 'b' will decide if BBE will ignore the 'ASK' option or not, just
like with all other lines in BBE.BAN, thus, a banner-character of 3
with 3[ASK..... will trigger BBE to ask the user questions, but with
4[ASK.... BBE will not be triggered because the banner-character is
'3' and not '4' and with a blank in position 1, [ASK.... is always
executed by BBE.
The 'n' tells BBE the maximum number the user can enter to the ques-
tions you ask. BBE will always use a multiple-choice question and
the answers are always 1 to 'n'. If you have four items to select
from (1 to 4) 'n' must be a '4'. If six items are in order (1 to 6)
'n' should be a '6'.
The array of errorlevels is a series of numbers. They must follow
the [ASKnd] option. Between ']' and the first errorlevel must at
least be one space. Between the errorlevels there must also be
at least one space. Errorlevels can have a value from 0 to 255,
though you must make sure yourself that the final errorlevel will
not be higher than 255. You must at least supply as many error-
levels as there are possible options (minimum 1, maximum 9). If
you supply more errorlevels than 'n', the remainder is ignored.
If you supply wrong (to big, non-numeric) errorlevels, BBE will
ignore the ASK command and skip to the next record. in BBE.BAN.
This can result in problems in your batch-file !
BBE will wait for a valid keystroke (1 to 'n') for 30 seconds. If
the user did not enter a valid keystroke within this period, BBE
will use 'd' as the default. Thus 'd' must be between 1 and 'n'.
1[ASK41] will be executed with banner-option set to 1 and will be
a multiple-choice question with 4 possible answers. After 30 seconds,
BBE will use answer 1 as the default and starts executing the next
line in BBE.BAN.
How do you create a question. Study the following lines in BBE.BAN:
1What type of BBS would you like to enter:
1
1 -1 QuickBBS
1 -2 Remote Access
1 -3 Spitfire
1 -4 Opus 1.xx
1 -5 Fido
1
1Please enter your choice [1] to [5] .....
1[ASK53] 110 111 112 113 114
When banner-option is set to 1, the user is presented this question.
BBE will send all lines to the remote side until the [ASK... statement.
At that moment BBE know's it has to wait for a reply. In this case the
user can enter a '1', '2', '3', '4' or '5' (1[ASK5...) and BBE will
wait until the user gives one of those keystrokes or will use option 3
after 30 seconds of waiting (1[ASK53....).
Now what happens ? After BBE has found the right answer (in this case
1, 2, 3, 4 or 5) thru the user or by itself (after 30 seconds), BBE
will 'remember' the corresponding value (with a selection of '4', 113
is 'remembered', with a selection of 2, 111 is 'remembered).
At the end of BBE.BAN, BBE will add the LAST 'remembered' errorlevel
to the base-value. The base-value is the value you have assigned to
a certain baud-rate. So in the previous example (if this is the one
and only question), with a base errorlevel of 24 (could be 2400 baud
user) and option '4' selected, the final result of the errorlevel
will be 24 + 113 = 137.
What happens when you add a second (or third or more) question as
you can see in the example BBE_EXT.BAN in the release-file ?
In this case, the LAST 'remembered' errorlevel will be added to the
base level. Remember that the resulting errorlevel is NOT the total
of ALL 'remembered' errorlevels plus the base, but only the LAST
plus the base. Make sure that you use arrays of errorlevels that
make a unique value. One pitfall is to create a number of questions
where the result of option 1 in the first and option 2 in the second
is the same as the result of option 2 in the first and option 1 in
the last !!!!!
One special EXTRA trick. When a question is asked and the user (or
BBE has given the reply) the banner-option is changed ! Take the
next example:
1Send this shit with banner-option 1
2This won't be send if banner-option is 1
1Now a question:
1Select:
1-1 BBS with ICE
1-2 BBS plain
1-3 BBS with water
1-4 BBS wallbanger (BBE special)
1[ASK[44] 110 130 160 190
1Could be
2Yegh
3No taste at all
4Yummy.......
As you should expect (with banner-option 1 at the start) the user
would 'Could be' after he answered the question, but this is NOT
true. BBE changes the banner-option (not permanent in this case,
but only during the session with THIS user) along with the [ASK
option. So, if the user answered option '4', the display would
show 'Yummy.....', because the banner-option is changed along with
the ASK and gets the value of the option the user (or BBE) entered
after the question.
With this method (study BBE_EXT.BAN with the language 'case-study')
you can create very difficult question-answer games inside BBE.BAN.
This makes this method much more flexible than the current selection
programs there are.
Pitfalls are: - You create a combination of questions and error-
levels that give the same result with different
answers;
- You forget that the banner-option value changes
(only during this run and NOT permanent as with
F8) after a ASK-option;
Have fun with this option. It is a missing feature in mailers, but
they have functions, BBE doesn't have....
3.5 Word and Digit modem answers
────────────────────────────────────────────────────────────────────────
When you use digit-response codes (BBE 'feels best' when using word
responses), you must alter the BBE.CTL options that rule the modem
answers. Please be careful when changing this options. If you change
the responses in the wrong way, strange things may occur. For example:
Modem1200 CONNECT
Modem300 CONNECT
In any case, this should result in BBE thinking the user calls on 300
baud, while in fact the user could call on 1200 Baud. This could re-
sult in starting the BBS with the wrong options.
┌───────┬─────────────────────────────────────────────────────────────┐
│ 4 │ Execution │
└───────┴─────────────────────────────────────────────────────────────┘
4.1 Running BBE
────────────────────────────────────────────────────────────────────────
BBE should be called from a batch-file (example included). You can
(must) call BBE with the following syntax:
BBE [COM-portnr] {alternative CTL-file} {/N}
COM-portnr : This option is mandatory. You must include
the COM-port (not a fossil port, BBE uses
real ASYNCH routines) you want to use;
Alternative CTL-file : Include the name of an alternative CTL file.
You must include only the name. BBE will
search in the current directory, the directo-
ry BBE is started from (only DOS 3.xx and
higher) or the DOS-path. By default BBE used
BBE.CTL;
/N : When you include /N, BBE will ignore any run
periods, as supplied in the CTL-file;
4.2 BBE as a mailer
────────────────────────────────────────────────────────────────────────
BBE can function as a 'poor man's mailer'. This is done by calling
Bimodem <tm> to perform the uploads and downloads. This will work
as follows:
- You must include a BimodemPrg/BimodemCFG option in BBE.CTL;
- When a user calls, BBE will establish the baudrate an will
display 'Hit [ESC] twice or wait 30 seconds';
- When the user does not do a thing, BBE will terminate after 30
seconds with an errorlevel and the BBS should be started;
- When the user hits [ESC] twice, BBE will terminate at once with
an errorlevel and the BBS should be started;
- When the user starts Bimodem, BBE will detect the space/backspace
combination the remote Bimodem <tm> will send and BBE will call
Bimodem itself to start the transmission. After the transmission
is ready, BBE will terminate with the 'Exit Bimodem' errorlevel.
From version 5.01 and up, BBE will also detect the new Bimodem
version 1.22 handshake;
It is (of course) up to you, to setup your Bimodem that way, the
users are not able to do more than you want. The current 1.22 ver-
sion of Bimodem includes many options to secure the environment !
You can include something in a Bimodem.Pth and the users who call
your Bimodem functions will get this file(s) by default. It is up
to you to think how (or if) you should use this function of BBE,
but the potential is enormous !
4.3 Runtime options (menu's)
────────────────────────────────────────────────────────────────────────
After BBE is started, you will be offered a number of options:
F1 : Shell to Ms/Dos
BBE will ask you if you want to shell with or without the
auto-answer set to on. You should only use 'N' when you
are going to execute programs that work with the modem. In
this case BBE will reset the modem after you return from the
shell. When you select 'N', BBE will ask you if it has to
close its COM-port (please do so when you are going to exe-
cute programs that use THAT COM-port).
F2 : Direct program
When using F2, BBE will call the DirectProgram (as supplied
in BBE.CTL) while leaving the modem to auto-answer and the
DTR high.
F4 : Reset Modem
You can use this option to reset the modem to the original
state after BBE was called. This should be done when you
did something with the modem in <F1> (with answer set to 'Y')
or <F2>.
F5 : Local BBS
BBE will terminate with the 'Exit Local' errorlevel so the
BBS can be called locally. DTR is dropped, so no incom-
ming calls are allowed;
F7 : Drop DTR
When an incoming call is not a modem but something like
'Hello ?' <grin>, you can drop the DTR of the modem, after
taking the normal (parallel connected) phone of the hook.
You can now talk with the normal caller. When the call is
over, you must press any key to make the DTR high again
(this can also be done directly after taking the phone
off-hook);
F8 : Banner-option
You can alter the default banner-option if you like. Any
code other than 1, will flash in Red;
F9 : Exit BBE
You can terminate BBE;
┌───────┬─────────────────────────────────────────────────────────────┐
│ 5 │ Credit and history │
└───────┴─────────────────────────────────────────────────────────────┘
5.1 Credits
────────────────────────────────────────────────────────────────────────
Credits go to Arie C. Kerger and Robert C.L. Lirb for using and testing
this program for a long time, their suggestions and comments.
Also a big thanks to all the registered users. You have given me a
reason to extend BBE, where I thought it was only a 'private project'.
5.2 Copyrights and trademarks
────────────────────────────────────────────────────────────────────────
BBE is written in Turbo Pascal 5.5, with help of the Turbo Debugger 1.0
and makes extensive use of Object Professional 5.01. Also the ASYNCH+
(4.04) of Blaise is included.
Turbo Pascal is a trademark of Borland International
Turbo Debugger is a trademark of Borland International
Object Professional is a trademark of TurboPower Inc.
ASYNCH Plus is a trademark of Blaise Computing Inc.
Bimodem is a trademark of Eric Labs
DesqView is a trademark of Quarterdeck
4Dos is a trademark of Rex Conn and JP software
5.3 Unregistered usage
────────────────────────────────────────────────────────────────────────
I am sorry, but the testing and writing of BBE has cost me a lot
(phone bills and so on). This program is (and always was) a program
that you must pay for.
If you pay, you will receive a file called BBE.KEY. You can place this
file:
- Somewhere in the DOS-path;
- Along with the BBE.EXE file in the same directory if you are
running DOS 3.x (and higher) and this directory is not inside
the DOS path;
- In the current directory when you call BBE;
Registered users will have an 'unlocked' version. Unregistered users
have the following locks:
- The dos-shell (F1) runs only in around 110.000 bytes;
- The DirectProgram runs only in around 110.000 bytes;
- Mailer option is reduced to a memory size of 120K (enough for
Bimodem to run) and will only work 10 minutes per call;
- One trick to overcome this 'problem' is to swap BBE with a
swapper, but, bad luck, I hook on several interrupts and swapping
can, in the end, cause hangups on those moments you don't want
them (when somebody calls). If you want to run a BBS with these
tricks, you can better place a batch in your dos-path and when
the phone rings you can start-up your BBS from the DOS-prompt;
5.4 Version history
────────────────────────────────────────────────────────────────────────
┌───────┬────────────────────────────┐
│ 4.01 │ Major Release │
└───────┴────────────────────────────┘
■ Did a complete rewrite of the major code and converted
to real ASYNCH routines;
■ Converted to TPascal 5.5;
■ Reworked sound and vision again;
■ Included simple mailer options;
■ Changed registration functions;
■ Corrected some major bugs;
┌───────┬────────────────────────────┐
│ 4.10 │ Minor Release │
└───────┴────────────────────────────┘
■ Added baud rates 4800, 9600 and 19200, also added correct code
for new Modem4800, Modem9600 and Modem19200 options. Also added
Exit4800, Exit9600 and Exit19200 options;
■ Reworked the internals. Now using OPRO and removed slow screen
code;
■ BBE will now return the correct cursor state in a shell or when
BBE terminates;
■ Changed the registration a bit. BBE will now use a BBE.KEY file
(when you did not receive a new version from me, please write
me a note and I will send a new BBE along with the key to you);
■ BBE can now close the COM-port inside the shell. This caused some
hangups when the Sysop called a communication program inside the
shell;
■ BBE will now show the name of the person who registered this copy
in the local screen and will send it to any remote user;
┌───────┬────────────────────────────┐
│ 5.01 │ Major Release │
└───────┴────────────────────────────┘
■ Added new Bimodem V 1.22 handshake along with the old one;
■ Added questions to the banner language. You can now ask multiple
choice questions to the user, inside the banner, and set the
errorlevel depending on the answers. The number of questions
you can ask is only limited by the possible different error-
levels;
■ Added a small window where the remote output (header, banner
and so on) is displayed locally;
┌───────┬────────────────────────────┐
│ 5.02 │ Minor Release │
└───────┴────────────────────────────┘
■ Added configurable COM-port setup for special assignments of
IRQ and address;
■ Changed the IRQ/Address defaults to a PC-XT/AT configuration.
Versions 5.01 and lower used a PS2 setup;
■ Added a test to check if the supplied COM-port is in the range
1 to 4;
┌───────┬────────────────────────────┐
│ 5.03 │ Minor Release │
└───────┴────────────────────────────┘
■ Added an extra check on the modem init strings. Also added some
extra delay to let the modem work things out proper (slow modems
and slow machines);
┌───────┬────────────────────────────┐
│ 5.05 │ Minor Release │
└───────┴────────────────────────────┘
■ Added ModemPacing command to cure some problems with so called
'slow combinations' (this will say nothing about the quality of
the hardware, only about the match between modem, PC and BBE).
Sorry for my usage of the English language, it's not my native language
so this can happen.